home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.c++
- Path: netcom.com!craiga
- From: craiga@netcom.com (Craig Arnush)
- Subject: Re: Borland 5.0 16-bit Linker Problems
- Message-ID: <craigaDpo45w.29I@netcom.com>
- Organization: NETCOM On-line Communication Services (408 261-4700 guest)
- References: <4kbnrg$ofr@Grouper.Exis.Net> <316B8C76.381A@craft.camp.clarkson.edu> <316C06E9.1FF4@crc.ricoh.com>
- Date: Wed, 10 Apr 1996 22:37:08 GMT
- Sender: craiga@netcom20.netcom.com
-
- Jamey Graham <jamey@crc.ricoh.com> writes:
- >
- >i asked him what the conagent was and he had no idea and asked around the
- >shop and nobody could tell him. there is a brief explanation of this process
- >in the readme.txt file in \bc5, search for "out of memory". anyway, i do not
- >have the problem anymore but would really like to know why and how this
- >resolved it.
-
- In order to keep things a little more modular and keep from having
- duplicate code lying around on your hard disk, the IDE just simply runs
- the TLINK.EXE command-line program when it comes time to link a 16-bit
- application (TLINK32.EXE is similarly used for 32-bit applications). In
- Windows 95, whenever a 16-bit command-line (also called a DOS
- application) is called from a 32-bit console or windowed application that
- wants to trap the output, the call is done through the CONAGENT.EXE
- program that is supplied with Windows 95.
-
- I want to reiterate that point: CONAGENT.EXE is supplied by Microsoft
- with the Windows 95 installation. What happens then is that since there
- aren't any memory options specified for CONAGENT, it just uses the
- defaults set up by the operating system. Unfortunately, this doesn't
- give the application a whole lot of memory (as I'm sure you noticed when
- you saw the values before you changed them to "Auto"). TLINK needs quite
- a bit of memory, and if it's limited, it will run out of room quite
- quickly and complain bitterly. By changing CONAGENT's memory settings to
- "Auto", you allow TLINK (and any other 16-bit EXE shelled from another
- program that captures the output) to request and receive all the memory
- it may need...within the regular 16-bit constraints, of course.
-
- >so far, i cannot get my 16bit code to link. i am getting errors like
- >"automatic data segment exceeds 64k" and that some of my library objects
- >have not been found.
-
- Hmmm. It sounds like something might have changed in the size of some
- things you're using between the two compiler versions. Have you tried
- making a MAP file and finding out just how much larger than 64K your data
- segment is getting? Can you compare this with an older MAP file to try
- and find out what's taking up all the room? Were you using exceptions
- before? Are you using them now? How about RTTI?
-
- Also, do you need to stick with 16 bits? Moving up to 32 bits would
- certainly help your situation, if it's a viable option (which it isn't
- always).
-
- Me
- --
- /-------------------------------------------------------\
- | Craig Arnush | "Why are you arresting me? |
- | | You said I was *legally* drunk!" |
- | craiga@netcom.com | - T. Viking |
- \-------------------------------------------------------/
-